/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package phd.dupenois.changeidentifiers.engine.testing;

import java.util.Collections;
import java.util.Vector;
import phd.dupenois.changeidentifiers.ChangeIdentifierSet;

/**
 *
 * @author mpd209
 */
public class Test {
    private long start;
    private long timeTaken;
    private long startWithoutChangeIdentifiers;
    private long timeTakenWithoutChangeIdentifiers;
    private String description;
    private String title;
    private String footprintAlgorithmClass;
    private ChangeIdentifierSet changeIdentifierSet;

    private int redrawCountWithoutChangeIdentifiers;
    private int redrawCount;
    
    private Vector<TimeStep> timeStepsWithoutChangeIdentifiers;

    private Vector<TimeStep> timeSteps;

    public Test(){
        this.timeSteps = new Vector<TimeStep>();
        this.timeStepsWithoutChangeIdentifiers = new Vector<TimeStep>();
    }

    public void setTimeTaken(long timeTaken){
        this.timeTaken = timeTaken;
    }

    public void addTimeStep(TimeStep step){
        timeSteps.add(step);
    }

    public TimeStep[] getTimeSteps(){
        Collections.sort(timeSteps);
        return timeSteps.toArray(new TimeStep[timeSteps.size()]);
    }
    public void addTimeStepWithoutChangeIdentifiers(TimeStep step){
        timeStepsWithoutChangeIdentifiers.add(step);
    }

    public TimeStep[] getTimeStepsWithoutChangeIdentifiers(){
        Collections.sort(timeStepsWithoutChangeIdentifiers);
        return timeStepsWithoutChangeIdentifiers.toArray(new TimeStep[timeStepsWithoutChangeIdentifiers.size()]);
    }
    /**
     * @return the start
     */
    public long getStart() {
        return start;
    }

    /**
     * @return the timeTaken
     */
    public long getTimeTaken() {
        return timeTaken;
    }

    /**
     * @return the description
     */
    public String getDescription() {
        return description;
    }

    /**
     * @param description the description to set
     */
    public void setDescription(String description) {
        this.description = description;
    }

    /**
     * @return the title
     */
    public String getTitle() {
        return title;
    }

    /**
     * @param title the title to set
     */
    public void setTitle(String title) {
        this.title = title;
    }

    /**
     * @return the footprintAlgorithmClass
     */
    public String getFootprintAlgorithmClass() {
        return footprintAlgorithmClass;
    }

    /**
     * @param footprintAlgorithmClass the footprintAlgorithmClass to set
     */
    public void setFootprintAlgorithmClass(String footprintAlgorithmClass) {
        this.footprintAlgorithmClass = footprintAlgorithmClass;
    }

    /**
     * @return the changeIdentifierSet
     */
    public ChangeIdentifierSet getChangeIdentifierSet() {
        return changeIdentifierSet;
    }

    /**
     * @param changeIdentifierSet the changeIdentifierSet to set
     */
    public void setChangeIdentifierSet(ChangeIdentifierSet changeIdentifierSet) {
        this.changeIdentifierSet = changeIdentifierSet;
    }

    /**
     * @return the startWithoutChangeIdentifiers
     */
    public long getStartWithoutChangeIdentifiers() {
        return startWithoutChangeIdentifiers;
    }

    /**
     * @param startWithoutChangeIdentifiers the startWithoutChangeIdentifiers to set
     */
    public void setStartWithoutChangeIdentifiers(long startWithoutChangeIdentifiers) {
        this.startWithoutChangeIdentifiers = startWithoutChangeIdentifiers;
    }

    /**
     * @return the timeTakenWithoutChangeIdentifiers
     */
    public long getTimeTakenWithoutChangeIdentifiers() {
        return timeTakenWithoutChangeIdentifiers;
    }

    /**
     * @param timeTakenWithoutChangeIdentifiers the timeTakenWithoutChangeIdentifiers to set
     */
    public void setTimeTakenWithoutChangeIdentifiers(long timeTakenWithoutChangeIdentifiers) {
        this.timeTakenWithoutChangeIdentifiers = timeTakenWithoutChangeIdentifiers;
    }

    /**
     * @param start the start to set
     */
    public void setStart(long start) {
        this.start = start;
    }

    /**
     * @return the redrawCountWithoutChangeIdentifiers
     */
    public int getRedrawCountWithoutChangeIdentifiers() {
        return redrawCountWithoutChangeIdentifiers;
    }

    /**
     * @param redrawCountWithoutChangeIdentifiers the redrawCountWithoutChangeIdentifiers to set
     */
    public void setRedrawCountWithoutChangeIdentifiers(int redrawCountWithoutChangeIdentifiers) {
        this.redrawCountWithoutChangeIdentifiers = redrawCountWithoutChangeIdentifiers;
    }

    /**
     * @return the redrawCount
     */
    public int getRedrawCount() {
        return redrawCount;
    }

    /**
     * @param redrawCount the redrawCount to set
     */
    public void setRedrawCount(int redrawCount) {
        this.redrawCount = redrawCount;
    }
}
